{-# OPTIONS_GHC -XDeriveDataTypeable #-}
module ReceiverAgreementService where
import Data.List
import Data.Maybe
import Data.Typeable
import Data.Time.LocalTime
import XI.Directory.WS.Xmlable
import XI.Directory.WS.Main

ws = "ReceiverAgreementService"
nss = [("urn0","urn:com.sap.aii.ibdir.server.api.types"),("urn1","urn:ReceiverAgreementServiceVi"),("urn2","urn:com.sap.aii.ib.server.api.types")]

-- operations

change :: WsParams -> ChangeInput -> IO ChangeOutput
change = runService ws nss "urn1:change"
check :: WsParams -> CheckInput -> IO CheckOutput
check = runService ws nss "urn1:check"
create :: WsParams -> CreateInput -> IO CreateOutput
create = runService ws nss "urn1:create"
delete :: WsParams -> DeleteInput -> IO DeleteOutput
delete = runService ws nss "urn1:delete"
openForEdit :: WsParams -> OpenForEditInput -> IO OpenForEditOutput
openForEdit = runService ws nss "urn1:openForEdit"
query :: WsParams -> QueryInput -> IO QueryOutput
query = runService ws nss "urn1:query"
read :: WsParams -> ReadInput -> IO ReadOutput
read = runService ws nss "urn1:read"
revert :: WsParams -> RevertInput -> IO RevertOutput
revert = runService ws nss "urn1:revert"


-- types definition

data ChangeInput = ChangeInput {
    rA_ChangeRequest :: Maybe RA_CreateChangeIn
} deriving (Typeable, Show, Eq) 

data RA_CreateChangeIn = RA_CreateChangeIn {
    racciCL_ID :: Maybe String,
    racciReceiverAgreement :: Maybe [RA_Restricted]
} deriving (Typeable, Show, Eq) 

data RA_Restricted = RA_Restricted {
    rarMasterLanguage :: Maybe String,
    rarAdministrativeData :: Maybe OA_DataRestricted,
    rarDescription :: Maybe [LONG_Description],
    rarRA_ID :: Maybe MH_ID,
    rarCommunicationChannel :: Maybe CC_ID,
    rarAS_Attribute :: Maybe [GenericProperty],
    rarAS_TableAttribute :: Maybe [GP_Table],
    rarHeaderMapping :: Maybe HeaderMapping,
    rarPN_Mapping :: Maybe [PN_Mapping]
} deriving (Typeable, Show, Eq) 

data OA_DataRestricted = OA_DataRestricted {
    oadrRU_AccountID :: Maybe String
} deriving (Typeable, Show, Eq) 

data LONG_Description = LONG_Description {
    ldlanguageCode :: Maybe String,
    ldvalue :: Maybe String
} deriving (Typeable, Show, Eq) 

data MH_ID = MH_ID {
    mhidSP_ID :: Maybe String,
    mhidSC_ID :: Maybe String,
    mhidInterfaceName :: Maybe String,
    mhidInterfaceNamespace :: Maybe String,
    mhidRP_ID :: Maybe String,
    mhidRC_ID :: Maybe String
} deriving (Typeable, Show, Eq) 

data CC_ID = CC_ID {
    ccidPartyID :: Maybe String,
    ccidComponentID :: Maybe String,
    ccidChannelID :: Maybe String
} deriving (Typeable, Show, Eq) 

data GenericProperty = GenericProperty {
    gpName :: Maybe String,
    gpValue :: Maybe String
} deriving (Typeable, Show, Eq) 

data GP_Table = GP_Table {
    gptName :: Maybe String,
    gptVT_Row :: Maybe [GT_Row]
} deriving (Typeable, Show, Eq) 

data GT_Row = GT_Row {
    gtrVT_Cell :: Maybe [GT_RowTableCell]
} deriving (Typeable, Show, Eq) 

data GT_RowTableCell = GT_RowTableCell {
    gtrtcColumnName :: Maybe String,
    gtrtcValue :: Maybe String
} deriving (Typeable, Show, Eq) 

data HeaderMapping = HeaderMapping {
    hmSender :: Maybe CP_Extractor,
    hmReceiver :: Maybe CP_Extractor
} deriving (Typeable, Show, Eq) 

data CP_Extractor = CP_Extractor {
    cpeCommunicationParty :: Maybe Extractor,
    cpeCP_Schema :: Maybe Extractor,
    cpeCP_Agency :: Maybe Extractor,
    cpeCommunicationComponent :: Maybe Extractor
} deriving (Typeable, Show, Eq) 

data Extractor = Extractor {
    eTI_D :: Maybe String,
    eValue :: Maybe String,
    eDatatype :: Maybe String,
    eCO_Name :: Maybe String,
    eCO_Namespace :: Maybe String
} deriving (Typeable, Show, Eq) 

data PN_Mapping = PN_Mapping {
    pnmUR_I :: Maybe String,
    pnmPrefix :: Maybe String
} deriving (Typeable, Show, Eq) 

data ChangeOutput = ChangeOutput {
    responseChangeOutput :: Maybe CO_ModifyOut
} deriving (Typeable, Show, Eq) 

data CO_ModifyOut = CO_ModifyOut {
    comoCL_ID :: Maybe CL_ID,
    comoLM_Collection :: Maybe LM_Collection
} deriving (Typeable, Show, Eq) 

data CL_ID = CL_ID {
    clidCL_ID :: Maybe String,
    clidName :: Maybe String,
    clidDescription :: Maybe LONG_Description
} deriving (Typeable, Show, Eq) 

data LM_Collection = LM_Collection {
    lmcLogMessage :: Maybe [LogMessage],
    lmcLM_ChangeList :: Maybe [LM_ChangeList],
    lmcLM_Party :: Maybe [LM_Party],
    lmcLM_BusinessSystem :: Maybe [LM_CommunicationComponent],
    lmcLM_BusinessComponent :: Maybe [LM_CommunicationComponent],
    lmcLM_IntegrationProcess :: Maybe [LM_CommunicationComponent],
    lmcLM_CommunicationChannel :: Maybe [LM_CommunicationChannel],
    lmcLM_SenderAgreement :: Maybe [LM_MessageHeader],
    lmcLM_ReceiverAgreement :: Maybe [LM_MessageHeader],
    lmcLM_InterfaceDetermination :: Maybe [LM_MessageHeader],
    lmcLM_ReceiverDetermination :: Maybe [LM_MessageHeader],
    lmcLM_ValueMapping :: Maybe [LM_ValueMapping],
    lmcLM_ConfigurationScenario :: Maybe [LM_ConfigurationScenario]
} deriving (Typeable, Show, Eq) 

data LogMessage = LogMessage {
    lmLM_Item :: Maybe LM_Item
} deriving (Typeable, Show, Eq) 

data LM_Item = LM_Item {
    lmiSeverityCode :: Maybe String,
    lmiClassificationCode :: Maybe String,
    lmiMessage :: Maybe Text
} deriving (Typeable, Show, Eq) 

data Text = Text {
    tlanguageCode :: Maybe String,
    tvalue :: Maybe String
} deriving (Typeable, Show, Eq) 

data LM_ChangeList = LM_ChangeList {
    lmclCL_ID :: Maybe CL_ID,
    lmclLM_Item :: Maybe LM_Item
} deriving (Typeable, Show, Eq) 

data LM_Party = LM_Party {
    lmpPartyID :: Maybe String,
    lmpLM_Item :: Maybe LM_Item
} deriving (Typeable, Show, Eq) 

data LM_CommunicationComponent = LM_CommunicationComponent {
    lmccmpCCmp_ID :: Maybe CCmp_ID,
    lmccmpLM_Item :: Maybe LM_Item
} deriving (Typeable, Show, Eq) 

data CCmp_ID = CCmp_ID {
    ccmpidPartyID :: Maybe String,
    ccmpidComponentID :: Maybe String
} deriving (Typeable, Show, Eq) 

data LM_CommunicationChannel = LM_CommunicationChannel {
    lmccCC_ID :: Maybe CC_ID,
    lmccLM_Item :: Maybe LM_Item
} deriving (Typeable, Show, Eq) 

data LM_MessageHeader = LM_MessageHeader {
    lmmhMessageHeader :: Maybe MH_ID,
    lmmhLM_Item :: Maybe LM_Item
} deriving (Typeable, Show, Eq) 

data LM_ValueMapping = LM_ValueMapping {
    lmvmVM_ID :: Maybe String,
    lmvmLM_Item :: Maybe LM_Item
} deriving (Typeable, Show, Eq) 

data LM_ConfigurationScenario = LM_ConfigurationScenario {
    lmcsCS_ID :: Maybe String,
    lmcsLM_Item :: Maybe LM_Item
} deriving (Typeable, Show, Eq) 

data CheckInput = CheckInput {
    rA_CheckRequest :: Maybe RA_IdentifierCollection
} deriving (Typeable, Show, Eq) 

data RA_IdentifierCollection = RA_IdentifierCollection {
    raicRA_ID :: Maybe [MH_ID]
} deriving (Typeable, Show, Eq) 

data CheckOutput = CheckOutput {
    responseCheckOutput :: Maybe LM_Collection
} deriving (Typeable, Show, Eq) 

data CreateInput = CreateInput {
    rA_CreateRequest :: Maybe RA_CreateChangeIn
} deriving (Typeable, Show, Eq) 

data CreateOutput = CreateOutput {
    responseCreateOutput :: Maybe CO_ModifyOut
} deriving (Typeable, Show, Eq) 

data DeleteInput = DeleteInput {
    rA_DeleteRequest :: Maybe RA_DeleteOpenForEditIn
} deriving (Typeable, Show, Eq) 

data RA_DeleteOpenForEditIn = RA_DeleteOpenForEditIn {
    radofeiCL_ID :: Maybe String,
    radofeiRA_ID :: Maybe [MH_ID]
} deriving (Typeable, Show, Eq) 

data DeleteOutput = DeleteOutput {
    responseDeleteOutput :: Maybe CO_ModifyOut
} deriving (Typeable, Show, Eq) 

data OpenForEditInput = OpenForEditInput {
    rA_OpenForEditRequest :: Maybe RA_DeleteOpenForEditIn
} deriving (Typeable, Show, Eq) 

data OpenForEditOutput = OpenForEditOutput {
    responseOpenForEditOutput :: Maybe RA_OpenForEditOut
} deriving (Typeable, Show, Eq) 

data RA_OpenForEditOut = RA_OpenForEditOut {
    raofeoCL_ID :: Maybe CL_ID,
    raofeoReceiverAgreement :: Maybe [ReceiverAgreement],
    raofeoLM_Collection :: Maybe LM_Collection
} deriving (Typeable, Show, Eq) 

data ReceiverAgreement = ReceiverAgreement {
    raMasterLanguage :: Maybe String,
    raAdministrativeData :: Maybe OA_Data,
    raDescription :: Maybe [LONG_Description],
    raRA_ID :: Maybe MH_ID,
    raCommunicationChannel :: Maybe CC_ID,
    raAS_Attribute :: Maybe [GenericProperty],
    raAS_TableAttribute :: Maybe [GP_Table],
    raHeaderMapping :: Maybe HeaderMapping,
    raPN_Mapping :: Maybe [PN_Mapping]
} deriving (Typeable, Show, Eq) 

data OA_Data = OA_Data {
    oadRU_AccountID :: Maybe String,
    oadLC_DateTime :: Maybe LocalTime,
    oadLC_UserAccountID :: Maybe String
} deriving (Typeable, Show, Eq) 

data QueryInput = QueryInput {
    rA_QueryRequest :: Maybe RA_QueryIn
} deriving (Typeable, Show, Eq) 

data RA_QueryIn = RA_QueryIn {
    raqiRA_ID :: Maybe MH_ID,
    raqiDescription :: Maybe LONG_Description,
    raqiAdministrativeData :: Maybe OA_Data
} deriving (Typeable, Show, Eq) 

data QueryOutput = QueryOutput {
    responseQueryOutput :: Maybe RA_QueryOut
} deriving (Typeable, Show, Eq) 

data RA_QueryOut = RA_QueryOut {
    raqoRA_ID :: Maybe [MH_ID],
    raqoLM_Collection :: Maybe LM_Collection
} deriving (Typeable, Show, Eq) 

data ReadInput = ReadInput {
    rA_ReadRequest :: Maybe RA_ReadIn
} deriving (Typeable, Show, Eq) 

data RA_ReadIn = RA_ReadIn {
    rariReadContext :: Maybe String,
    rariRA_ID :: Maybe [MH_ID]
} deriving (Typeable, Show, Eq) 

data ReadOutput = ReadOutput {
    responseReadOutput :: Maybe RA_ReadOut
} deriving (Typeable, Show, Eq) 

data RA_ReadOut = RA_ReadOut {
    raroReceiverAgreement :: Maybe [ReceiverAgreement],
    raroLM_Collection :: Maybe LM_Collection
} deriving (Typeable, Show, Eq) 

data RevertInput = RevertInput {
    rA_RevertRequest :: Maybe RA_IdentifierCollection
} deriving (Typeable, Show, Eq) 

data RevertOutput = RevertOutput {
    responseRevertOutput :: Maybe LM_Collection
} deriving (Typeable, Show, Eq) 



-- instances


instance Xmlable ChangeInput where
	toContent x = [makeToContent ["urn1:ReceiverAgreementChangeRequest"] [toContent.rA_ChangeRequest] x]
	fromContent cs = ChangeInput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:ReceiverAgreementChangeRequest"] cs

instance Xmlable RA_CreateChangeIn where
	toContent x = [makeToContent ["urn0:ChangeListID", "urn0:ReceiverAgreement"] [toContent.racciCL_ID, toContent.racciReceiverAgreement] x]
	fromContent cs = RA_CreateChangeIn (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:ChangeListID", "urn0:ReceiverAgreement"] cs

instance Xmlable RA_Restricted where
	toContent x = [makeToContent ["urn0:MasterLanguage", "urn0:AdministrativeData", "urn0:Description", "urn0:ReceiverAgreementID", "urn0:CommunicationChannel", "urn0:AdapterSpecificAttribute", "urn0:AdapterSpecificTableAttribute", "urn0:HeaderMapping", "urn0:PrefixNamespaceMapping"] [toContent.rarMasterLanguage, toContent.rarAdministrativeData, toContent.rarDescription, toContent.rarRA_ID, toContent.rarCommunicationChannel, toContent.rarAS_Attribute, toContent.rarAS_TableAttribute, toContent.rarHeaderMapping, toContent.rarPN_Mapping] x]
	fromContent cs = RA_Restricted (fromContent c1) (fromContent c2) (fromContent c3) (fromContent c4) (fromContent c5) (fromContent c6) (fromContent c7) (fromContent c8) (fromContent c9)
		where [c1, c2, c3, c4, c5, c6, c7, c8, c9] = forFromContent nss ["urn0:MasterLanguage", "urn0:AdministrativeData", "urn0:Description", "urn0:ReceiverAgreementID", "urn0:CommunicationChannel", "urn0:AdapterSpecificAttribute", "urn0:AdapterSpecificTableAttribute", "urn0:HeaderMapping", "urn0:PrefixNamespaceMapping"] cs

instance Xmlable OA_DataRestricted where
	toContent x = [makeToContent ["urn2:ResponsibleUserAccountID"] [toContent.oadrRU_AccountID] x]
	fromContent cs = OA_DataRestricted (fromContent c1)
		where [c1] = forFromContent nss ["urn2:ResponsibleUserAccountID"] cs

instance Xmlable LONG_Description where
	toContent x = [makeToContent ["urn2:languageCode", "urn2:value"] [toContent.ldlanguageCode, toContent.ldvalue] x]
	fromContent cs = LONG_Description (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn2:languageCode", "urn2:value"] cs

instance Xmlable MH_ID where
	toContent x = [makeToContent ["urn0:SenderPartyID", "urn0:SenderComponentID", "urn0:InterfaceName", "urn0:InterfaceNamespace", "urn0:ReceiverPartyID", "urn0:ReceiverComponentID"] [toContent.mhidSP_ID, toContent.mhidSC_ID, toContent.mhidInterfaceName, toContent.mhidInterfaceNamespace, toContent.mhidRP_ID, toContent.mhidRC_ID] x]
	fromContent cs = MH_ID (fromContent c1) (fromContent c2) (fromContent c3) (fromContent c4) (fromContent c5) (fromContent c6)
		where [c1, c2, c3, c4, c5, c6] = forFromContent nss ["urn0:SenderPartyID", "urn0:SenderComponentID", "urn0:InterfaceName", "urn0:InterfaceNamespace", "urn0:ReceiverPartyID", "urn0:ReceiverComponentID"] cs

instance Xmlable CC_ID where
	toContent x = [makeToContent ["urn0:PartyID", "urn0:ComponentID", "urn0:ChannelID"] [toContent.ccidPartyID, toContent.ccidComponentID, toContent.ccidChannelID] x]
	fromContent cs = CC_ID (fromContent c1) (fromContent c2) (fromContent c3)
		where [c1, c2, c3] = forFromContent nss ["urn0:PartyID", "urn0:ComponentID", "urn0:ChannelID"] cs

instance Xmlable GenericProperty where
	toContent x = [makeToContent ["urn0:Name", "urn0:Value"] [toContent.gpName, toContent.gpValue] x]
	fromContent cs = GenericProperty (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:Name", "urn0:Value"] cs

instance Xmlable GP_Table where
	toContent x = [makeToContent ["urn0:Name", "urn0:ValueTableRow"] [toContent.gptName, toContent.gptVT_Row] x]
	fromContent cs = GP_Table (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:Name", "urn0:ValueTableRow"] cs

instance Xmlable GT_Row where
	toContent x = [makeToContent ["urn0:ValueTableCell"] [toContent.gtrVT_Cell] x]
	fromContent cs = GT_Row (fromContent c1)
		where [c1] = forFromContent nss ["urn0:ValueTableCell"] cs

instance Xmlable GT_RowTableCell where
	toContent x = [makeToContent ["urn0:ColumnName", "urn0:Value"] [toContent.gtrtcColumnName, toContent.gtrtcValue] x]
	fromContent cs = GT_RowTableCell (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:ColumnName", "urn0:Value"] cs

instance Xmlable HeaderMapping where
	toContent x = [makeToContent ["urn0:Sender", "urn0:Receiver"] [toContent.hmSender, toContent.hmReceiver] x]
	fromContent cs = HeaderMapping (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:Sender", "urn0:Receiver"] cs

instance Xmlable CP_Extractor where
	toContent x = [makeToContent ["urn0:CommunicationParty", "urn0:CommunicationPartySchema", "urn0:CommunicationPartyAgency", "urn0:CommunicationComponent"] [toContent.cpeCommunicationParty, toContent.cpeCP_Schema, toContent.cpeCP_Agency, toContent.cpeCommunicationComponent] x]
	fromContent cs = CP_Extractor (fromContent c1) (fromContent c2) (fromContent c3) (fromContent c4)
		where [c1, c2, c3, c4] = forFromContent nss ["urn0:CommunicationParty", "urn0:CommunicationPartySchema", "urn0:CommunicationPartyAgency", "urn0:CommunicationComponent"] cs

instance Xmlable Extractor where
	toContent x = [makeToContent ["urn0:TypeID", "urn0:Value", "urn0:Datatype", "urn0:ContextObjectName", "urn0:ContextObjectNamespace"] [toContent.eTI_D, toContent.eValue, toContent.eDatatype, toContent.eCO_Name, toContent.eCO_Namespace] x]
	fromContent cs = Extractor (fromContent c1) (fromContent c2) (fromContent c3) (fromContent c4) (fromContent c5)
		where [c1, c2, c3, c4, c5] = forFromContent nss ["urn0:TypeID", "urn0:Value", "urn0:Datatype", "urn0:ContextObjectName", "urn0:ContextObjectNamespace"] cs

instance Xmlable PN_Mapping where
	toContent x = [makeToContent ["urn0:URI", "urn0:Prefix"] [toContent.pnmUR_I, toContent.pnmPrefix] x]
	fromContent cs = PN_Mapping (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:URI", "urn0:Prefix"] cs

instance Xmlable ChangeOutput where
	toContent x = [makeToContent ["urn1:Response"] [toContent.responseChangeOutput] x]
	fromContent cs = ChangeOutput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:Response"] cs

instance Xmlable CO_ModifyOut where
	toContent x = [makeToContent ["urn0:ChangeListID", "urn0:LogMessageCollection"] [toContent.comoCL_ID, toContent.comoLM_Collection] x]
	fromContent cs = CO_ModifyOut (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:ChangeListID", "urn0:LogMessageCollection"] cs

instance Xmlable CL_ID where
	toContent x = [makeToContent ["urn2:ChangeListID", "urn2:Name", "urn2:Description"] [toContent.clidCL_ID, toContent.clidName, toContent.clidDescription] x]
	fromContent cs = CL_ID (fromContent c1) (fromContent c2) (fromContent c3)
		where [c1, c2, c3] = forFromContent nss ["urn2:ChangeListID", "urn2:Name", "urn2:Description"] cs

instance Xmlable LM_Collection where
	toContent x = [makeToContent ["urn0:LogMessage", "urn0:LogMessageChangeList", "urn0:LogMessageParty", "urn0:LogMessageBusinessSystem", "urn0:LogMessageBusinessComponent", "urn0:LogMessageIntegrationProcess", "urn0:LogMessageCommunicationChannel", "urn0:LogMessageSenderAgreement", "urn0:LogMessageReceiverAgreement", "urn0:LogMessageInterfaceDetermination", "urn0:LogMessageReceiverDetermination", "urn0:LogMessageValueMapping", "urn0:LogMessageConfigurationScenario"] [toContent.lmcLogMessage, toContent.lmcLM_ChangeList, toContent.lmcLM_Party, toContent.lmcLM_BusinessSystem, toContent.lmcLM_BusinessComponent, toContent.lmcLM_IntegrationProcess, toContent.lmcLM_CommunicationChannel, toContent.lmcLM_SenderAgreement, toContent.lmcLM_ReceiverAgreement, toContent.lmcLM_InterfaceDetermination, toContent.lmcLM_ReceiverDetermination, toContent.lmcLM_ValueMapping, toContent.lmcLM_ConfigurationScenario] x]
	fromContent cs = LM_Collection (fromContent c1) (fromContent c2) (fromContent c3) (fromContent c4) (fromContent c5) (fromContent c6) (fromContent c7) (fromContent c8) (fromContent c9) (fromContent c10) (fromContent c11) (fromContent c12) (fromContent c13)
		where [c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13] = forFromContent nss ["urn0:LogMessage", "urn0:LogMessageChangeList", "urn0:LogMessageParty", "urn0:LogMessageBusinessSystem", "urn0:LogMessageBusinessComponent", "urn0:LogMessageIntegrationProcess", "urn0:LogMessageCommunicationChannel", "urn0:LogMessageSenderAgreement", "urn0:LogMessageReceiverAgreement", "urn0:LogMessageInterfaceDetermination", "urn0:LogMessageReceiverDetermination", "urn0:LogMessageValueMapping", "urn0:LogMessageConfigurationScenario"] cs

instance Xmlable LogMessage where
	toContent x = [makeToContent ["urn0:LogMessageItem"] [toContent.lmLM_Item] x]
	fromContent cs = LogMessage (fromContent c1)
		where [c1] = forFromContent nss ["urn0:LogMessageItem"] cs

instance Xmlable LM_Item where
	toContent x = [makeToContent ["urn0:SeverityCode", "urn0:ClassificationCode", "urn0:Message"] [toContent.lmiSeverityCode, toContent.lmiClassificationCode, toContent.lmiMessage] x]
	fromContent cs = LM_Item (fromContent c1) (fromContent c2) (fromContent c3)
		where [c1, c2, c3] = forFromContent nss ["urn0:SeverityCode", "urn0:ClassificationCode", "urn0:Message"] cs

instance Xmlable Text where
	toContent x = [makeToContent ["urn0:languageCode", "urn0:value"] [toContent.tlanguageCode, toContent.tvalue] x]
	fromContent cs = Text (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:languageCode", "urn0:value"] cs

instance Xmlable LM_ChangeList where
	toContent x = [makeToContent ["urn0:ChangeListID", "urn0:LogMessageItem"] [toContent.lmclCL_ID, toContent.lmclLM_Item] x]
	fromContent cs = LM_ChangeList (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:ChangeListID", "urn0:LogMessageItem"] cs

instance Xmlable LM_Party where
	toContent x = [makeToContent ["urn0:PartyID", "urn0:LogMessageItem"] [toContent.lmpPartyID, toContent.lmpLM_Item] x]
	fromContent cs = LM_Party (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:PartyID", "urn0:LogMessageItem"] cs

instance Xmlable LM_CommunicationComponent where
	toContent x = [makeToContent ["urn0:CommunicationComponentID", "urn0:LogMessageItem"] [toContent.lmccmpCCmp_ID, toContent.lmccmpLM_Item] x]
	fromContent cs = LM_CommunicationComponent (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:CommunicationComponentID", "urn0:LogMessageItem"] cs

instance Xmlable CCmp_ID where
	toContent x = [makeToContent ["urn0:PartyID", "urn0:ComponentID"] [toContent.ccmpidPartyID, toContent.ccmpidComponentID] x]
	fromContent cs = CCmp_ID (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:PartyID", "urn0:ComponentID"] cs

instance Xmlable LM_CommunicationChannel where
	toContent x = [makeToContent ["urn0:CommunicationChannelID", "urn0:LogMessageItem"] [toContent.lmccCC_ID, toContent.lmccLM_Item] x]
	fromContent cs = LM_CommunicationChannel (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:CommunicationChannelID", "urn0:LogMessageItem"] cs

instance Xmlable LM_MessageHeader where
	toContent x = [makeToContent ["urn0:MessageHeader", "urn0:LogMessageItem"] [toContent.lmmhMessageHeader, toContent.lmmhLM_Item] x]
	fromContent cs = LM_MessageHeader (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:MessageHeader", "urn0:LogMessageItem"] cs

instance Xmlable LM_ValueMapping where
	toContent x = [makeToContent ["urn0:ValueMappingID", "urn0:LogMessageItem"] [toContent.lmvmVM_ID, toContent.lmvmLM_Item] x]
	fromContent cs = LM_ValueMapping (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:ValueMappingID", "urn0:LogMessageItem"] cs

instance Xmlable LM_ConfigurationScenario where
	toContent x = [makeToContent ["urn0:ConfigurationScenarioID", "urn0:LogMessageItem"] [toContent.lmcsCS_ID, toContent.lmcsLM_Item] x]
	fromContent cs = LM_ConfigurationScenario (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:ConfigurationScenarioID", "urn0:LogMessageItem"] cs

instance Xmlable CheckInput where
	toContent x = [makeToContent ["urn1:ReceiverAgreementCheckRequest"] [toContent.rA_CheckRequest] x]
	fromContent cs = CheckInput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:ReceiverAgreementCheckRequest"] cs

instance Xmlable RA_IdentifierCollection where
	toContent x = [makeToContent ["urn0:ReceiverAgreementID"] [toContent.raicRA_ID] x]
	fromContent cs = RA_IdentifierCollection (fromContent c1)
		where [c1] = forFromContent nss ["urn0:ReceiverAgreementID"] cs

instance Xmlable CheckOutput where
	toContent x = [makeToContent ["urn1:Response"] [toContent.responseCheckOutput] x]
	fromContent cs = CheckOutput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:Response"] cs

instance Xmlable CreateInput where
	toContent x = [makeToContent ["urn1:ReceiverAgreementCreateRequest"] [toContent.rA_CreateRequest] x]
	fromContent cs = CreateInput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:ReceiverAgreementCreateRequest"] cs

instance Xmlable CreateOutput where
	toContent x = [makeToContent ["urn1:Response"] [toContent.responseCreateOutput] x]
	fromContent cs = CreateOutput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:Response"] cs

instance Xmlable DeleteInput where
	toContent x = [makeToContent ["urn1:ReceiverAgreementDeleteRequest"] [toContent.rA_DeleteRequest] x]
	fromContent cs = DeleteInput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:ReceiverAgreementDeleteRequest"] cs

instance Xmlable RA_DeleteOpenForEditIn where
	toContent x = [makeToContent ["urn0:ChangeListID", "urn0:ReceiverAgreementID"] [toContent.radofeiCL_ID, toContent.radofeiRA_ID] x]
	fromContent cs = RA_DeleteOpenForEditIn (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:ChangeListID", "urn0:ReceiverAgreementID"] cs

instance Xmlable DeleteOutput where
	toContent x = [makeToContent ["urn1:Response"] [toContent.responseDeleteOutput] x]
	fromContent cs = DeleteOutput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:Response"] cs

instance Xmlable OpenForEditInput where
	toContent x = [makeToContent ["urn1:ReceiverAgreementOpenForEditRequest"] [toContent.rA_OpenForEditRequest] x]
	fromContent cs = OpenForEditInput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:ReceiverAgreementOpenForEditRequest"] cs

instance Xmlable OpenForEditOutput where
	toContent x = [makeToContent ["urn1:Response"] [toContent.responseOpenForEditOutput] x]
	fromContent cs = OpenForEditOutput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:Response"] cs

instance Xmlable RA_OpenForEditOut where
	toContent x = [makeToContent ["urn0:ChangeListID", "urn0:ReceiverAgreement", "urn0:LogMessageCollection"] [toContent.raofeoCL_ID, toContent.raofeoReceiverAgreement, toContent.raofeoLM_Collection] x]
	fromContent cs = RA_OpenForEditOut (fromContent c1) (fromContent c2) (fromContent c3)
		where [c1, c2, c3] = forFromContent nss ["urn0:ChangeListID", "urn0:ReceiverAgreement", "urn0:LogMessageCollection"] cs

instance Xmlable ReceiverAgreement where
	toContent x = [makeToContent ["urn0:MasterLanguage", "urn0:AdministrativeData", "urn0:Description", "urn0:ReceiverAgreementID", "urn0:CommunicationChannel", "urn0:AdapterSpecificAttribute", "urn0:AdapterSpecificTableAttribute", "urn0:HeaderMapping", "urn0:PrefixNamespaceMapping"] [toContent.raMasterLanguage, toContent.raAdministrativeData, toContent.raDescription, toContent.raRA_ID, toContent.raCommunicationChannel, toContent.raAS_Attribute, toContent.raAS_TableAttribute, toContent.raHeaderMapping, toContent.raPN_Mapping] x]
	fromContent cs = ReceiverAgreement (fromContent c1) (fromContent c2) (fromContent c3) (fromContent c4) (fromContent c5) (fromContent c6) (fromContent c7) (fromContent c8) (fromContent c9)
		where [c1, c2, c3, c4, c5, c6, c7, c8, c9] = forFromContent nss ["urn0:MasterLanguage", "urn0:AdministrativeData", "urn0:Description", "urn0:ReceiverAgreementID", "urn0:CommunicationChannel", "urn0:AdapterSpecificAttribute", "urn0:AdapterSpecificTableAttribute", "urn0:HeaderMapping", "urn0:PrefixNamespaceMapping"] cs

instance Xmlable OA_Data where
	toContent x = [makeToContent ["urn2:ResponsibleUserAccountID", "urn2:LastChangeDateTime", "urn2:LastChangeUserAccountID"] [toContent.oadRU_AccountID, toContent.oadLC_DateTime, toContent.oadLC_UserAccountID] x]
	fromContent cs = OA_Data (fromContent c1) (fromContent c2) (fromContent c3)
		where [c1, c2, c3] = forFromContent nss ["urn2:ResponsibleUserAccountID", "urn2:LastChangeDateTime", "urn2:LastChangeUserAccountID"] cs

instance Xmlable QueryInput where
	toContent x = [makeToContent ["urn1:ReceiverAgreementQueryRequest"] [toContent.rA_QueryRequest] x]
	fromContent cs = QueryInput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:ReceiverAgreementQueryRequest"] cs

instance Xmlable RA_QueryIn where
	toContent x = [makeToContent ["urn0:ReceiverAgreementID", "urn0:Description", "urn0:AdministrativeData"] [toContent.raqiRA_ID, toContent.raqiDescription, toContent.raqiAdministrativeData] x]
	fromContent cs = RA_QueryIn (fromContent c1) (fromContent c2) (fromContent c3)
		where [c1, c2, c3] = forFromContent nss ["urn0:ReceiverAgreementID", "urn0:Description", "urn0:AdministrativeData"] cs

instance Xmlable QueryOutput where
	toContent x = [makeToContent ["urn1:Response"] [toContent.responseQueryOutput] x]
	fromContent cs = QueryOutput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:Response"] cs

instance Xmlable RA_QueryOut where
	toContent x = [makeToContent ["urn0:ReceiverAgreementID", "urn0:LogMessageCollection"] [toContent.raqoRA_ID, toContent.raqoLM_Collection] x]
	fromContent cs = RA_QueryOut (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:ReceiverAgreementID", "urn0:LogMessageCollection"] cs

instance Xmlable ReadInput where
	toContent x = [makeToContent ["urn1:ReceiverAgreementReadRequest"] [toContent.rA_ReadRequest] x]
	fromContent cs = ReadInput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:ReceiverAgreementReadRequest"] cs

instance Xmlable RA_ReadIn where
	toContent x = [makeToContent ["urn0:ReadContext", "urn0:ReceiverAgreementID"] [toContent.rariReadContext, toContent.rariRA_ID] x]
	fromContent cs = RA_ReadIn (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:ReadContext", "urn0:ReceiverAgreementID"] cs

instance Xmlable ReadOutput where
	toContent x = [makeToContent ["urn1:Response"] [toContent.responseReadOutput] x]
	fromContent cs = ReadOutput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:Response"] cs

instance Xmlable RA_ReadOut where
	toContent x = [makeToContent ["urn0:ReceiverAgreement", "urn0:LogMessageCollection"] [toContent.raroReceiverAgreement, toContent.raroLM_Collection] x]
	fromContent cs = RA_ReadOut (fromContent c1) (fromContent c2)
		where [c1, c2] = forFromContent nss ["urn0:ReceiverAgreement", "urn0:LogMessageCollection"] cs

instance Xmlable RevertInput where
	toContent x = [makeToContent ["urn1:ReceiverAgreementRevertRequest"] [toContent.rA_RevertRequest] x]
	fromContent cs = RevertInput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:ReceiverAgreementRevertRequest"] cs

instance Xmlable RevertOutput where
	toContent x = [makeToContent ["urn1:Response"] [toContent.responseRevertOutput] x]
	fromContent cs = RevertOutput (fromContent c1)
		where [c1] = forFromContent nss ["urn1:Response"] cs

